package com.yl.chainStore.services.sick

import com.yl.chainStore.entity.sick.CustomerSubscribeItem
import com.yl.chainStore.entity.sick.CustomerSubscribeLog
import com.yl.chainStore.entity.sick.SickMedicalRecordsDetail
import com.yl.chainStore.entity.user.CompanyUserOperationLog
import com.yl.chainStore.pojo.vo.sick.CustomerSubscribeLogOperationVo
import com.yl.common.control.ResponseBody

/**
 * 预约
 */
interface ICustomerSubscribeLogService {

	/**
	 * 获取单个明细
	 */
	fun getById(id:Long):CustomerSubscribeLog?

	/**
	 * 修改预约基础信息（目前基本全改）
	 */
	fun updateInfo(subscribeLog:CustomerSubscribeLog):ResponseBody


	fun updateByRecordDetail(recordDetail : SickMedicalRecordsDetail):ResponseBody

	/**
	 * 根据id获取预约项目（因为项目没有什么逻辑，所以暂时放这边） 项目列表
	 */
	fun getSubscribeItemsByIds(ids:List<Long>):List<CustomerSubscribeItem>

	/**
	 * 根据id获取预约项目（因为项目没有什么逻辑，所以暂时放这边） 空格隔开的字符串列表
	 */
	fun getSubscribeItemsByIdsStr(ids:List<Long>):String

	/**
	 * 完成预约
	 */
	fun completeLog(vo: CustomerSubscribeLogOperationVo):ResponseBody

	/**
	 * 取消预约
	 */
	fun cancelLog(vo: CustomerSubscribeLogOperationVo):ResponseBody

	/**
	 * 强制回退到新增的状态
	 */
	fun backToNewAdd(id:Long):ResponseBody

	/**
	 * 通过预约生成就诊记录
	 */
	fun subLogToRecordsDetail(id: Long):ResponseBody

	/**
	 * 通过预约生成就诊记录
	 */
	fun subLogToRecordsDetail(subscribeLog: CustomerSubscribeLog):ResponseBody

	/**
	 * 通过预约，获取就诊记录
	 */
	fun getRecordsDetailBySubscribeId(id:Long):SickMedicalRecordsDetail?

	/**
	 * 获取修改记录
	 */
	fun getSubscribeLogOperationLog(id:Long):List<CompanyUserOperationLog>
}
